package com.penghe.www.myframes.activities

import android.content.Intent
import android.view.Menu
import android.view.MenuItem
import android.view.View
import com.penghe.www.myframes.R
import com.penghe.www.myframes.others.ChartActivity
import com.penghe.www.myframes.others.GoogleMapActivity
import com.penghe.www.myframes.others.HistogramActivity
import com.penghe.www.myframes.others.leson_2.FlowLayoutActivity
import com.penghe.www.myframes.others.leson_3.CircleProgressBarActivity
import com.penghe.www.myframes.others.leson_3.WaterFallLayoutActivity
import com.sscl.baselibrary.activity.BaseDrawerActivity

class HomeActivity : BaseDrawerActivity() {
    /**
     * 在设置布局之前需要进行的操作
     */
    override fun doBeforeSetLayout() {
    }

    /**
     * 设置布局
     *
     * @return 布局id
     */
    override fun setLayout(): Int {
        return R.layout.activity_home
    }

    /**
     * 在设置布局之后，进行其他操作之前，所需要初始化的数据
     */
    override fun doBeforeInitOthers() {
    }

    /**
     * 初始化布局控件
     */
    override fun initViews() {
    }

    /**
     * 初始化控件数据
     */
    override fun initViewData() {
    }

    /**
     * 初始化其他数据
     */
    override fun initOtherData() {
    }

    /**
     * 初始化事件
     */
    override fun initEvents() {
    }

    /**
     * 在最后执行的操作
     */
    override fun doAfterAll() {
    }

    /**
     * 设置菜单
     *
     * @param menu 菜单
     * @return 只是重写 public boolean onCreateOptionsMenu(Menu menu)
     */
    override fun createOptionsMenu(menu: Menu): Boolean {
        return false
    }

    /**
     * 设置菜单监听
     *
     * @param item 菜单的item
     * @return true表示处理了监听事件
     */
    override fun optionsItemSelected(item: MenuItem): Boolean {
        return false
    }

    /**
     * DrawerLayout的滑动监听
     *
     * @param drawerView  侧边栏
     * @param slideOffset 滑动距离
     */
    override fun drawerSlide(drawerView: View?, slideOffset: Float) {

    }

    /**
     * DrawerLayout已经完全打开了
     *
     * @param drawerView 侧边栏
     */
    override fun drawerOpened(drawerView: View?) {

    }

    /**
     * DrawerLayout已经完全关闭了
     *
     * @param drawerView 侧边栏
     */
    override fun drawerClosed(drawerView: View?) {

    }

    /**
     * DrawerLayout的状态改变了
     *
     * @param newState 新的状态
     */
    override fun drawerStateChanged(newState: Int) {

    }

    /**
     * 获取侧边栏的头部的资源id，如果不设置此选项，会以默认的头部布局进行填充
     *
     * @return 侧边栏的头部的资源id
     */
    override fun setNavigationViewHeaderViewLayoutResId(): Int {
        return 0
    }


    /**
     * 获取侧边栏的菜单的资源id，如果不设置此选项，会以默认的菜单进行填充
     *
     * @return 侧边栏的菜单的资源id
     */
    override fun setNavigationMenuResId(): Int {
        return R.menu.activity_main_drawer
    }

    /**
     * 侧边栏选项被选中时执行的回调
     *
     * @param menuItemId 被选中的侧边栏选项ID
     */
    override fun navigationItemSelected(menuItemId: Int) {
        val intent: Intent?
        when (menuItemId) {
            R.id.flow_layout -> {
                intent = Intent(this@HomeActivity, FlowLayoutActivity::class.java)
            }
            R.id.water_fall_layout -> {
                intent = Intent(this@HomeActivity, WaterFallLayoutActivity::class.java)
            }
            R.id.sidebar -> {
                intent = null
            }
            R.id.circle_progress_bar -> {
                intent = Intent(this@HomeActivity, CircleProgressBarActivity::class.java)
            }

            //其他
            R.id.google_map -> {
                intent = Intent(this@HomeActivity, GoogleMapActivity::class.java)
            }
            R.id.histogram -> {
                intent = Intent(this@HomeActivity, HistogramActivity::class.java)
            }
            R.id.chart ->{
                intent = Intent(this@HomeActivity, ChartActivity::class.java)
            }
            else -> {
                intent = null
            }
        }
        if (intent != null) {
            startActivity(intent)
        }
    }
}
